#ifndef INFOWINDOW_H
#define INFOWINDOW_H

#include <QWidget>
#include "progresslistener.h"
#include "ifilebuffer.h"
#include "glwidget.h"

namespace Ui {
class InfoWindow;
}

class InfoWindow : public QWidget
{
    Q_OBJECT

public:
    explicit InfoWindow(ProgressListener *pl, IFileBuffer *fb);
    ~InfoWindow();

    static QString convertBytes(qint64 bytesCount);
    //! Преобразует скорость, заданную в байтах в миллисекунду, в более удобные единицы: Б/с, КБ/с, МБ/с
    static QString convertSpeed(qint64 speed);
    static QString convertTime(qint64 msec);

protected slots:    
    void onFileLoadingBegin();
    void onFileSavingBegin();
    void onInfoUpdate(ProgressListener::Info info);
    void onOpPaused();
    void onOpResumed();
    void onOpFinished();
    void onCubeStopped();

private:
    void showView();
    Ui::InfoWindow *ui;

    GLWidget *cube;

    bool needHide;    
};

#endif // INFOWINDOW_H
